#include <jni.h>
#include <string>

extern "C"
JNIEXPORT jlong JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_newInstance(JNIEnv *env, jobject thiz) {
    // TODO: implement newInstance()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_deleteInstance(JNIEnv *env, jobject thiz) {
    // TODO: implement deleteInstance()
}
extern "C"
JNIEXPORT jint JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_getChannels(JNIEnv *env, jobject thiz, jlong handle) {
    // TODO: implement getChannels()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setChannels(JNIEnv *env, jobject thiz, jlong handle,
                                                     jint channels) {
    // TODO: implement setChannels()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setSampleRate(JNIEnv *env, jobject thiz, jlong handle,
                                                       jint srate) {
    // TODO: implement setSampleRate()
}
extern "C"
JNIEXPORT jint JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_getUnprocessedSampleCount(JNIEnv *env, jobject thiz,
                                                                   jlong handle) {
    // TODO: implement getUnprocessedSampleCount()
}
extern "C"
JNIEXPORT jint JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_getSampleCount(JNIEnv *env, jobject thiz, jlong handle) {
    // TODO: implement getSampleCount()
}
extern "C"
JNIEXPORT jint JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_adjustAmountOfSamples(JNIEnv *env, jobject thiz,
                                                               jlong handle, jint amount) {
    // TODO: implement adjustAmountOfSamples()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_flush(JNIEnv *env, jobject thiz, jlong handle) {
    // TODO: implement flush()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_clear(JNIEnv *env, jobject thiz, jlong handle) {
    // TODO: implement clear()
}
extern "C"
JNIEXPORT jint JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_isEmpty(JNIEnv *env, jobject thiz, jlong handle) {
    // TODO: implement isEmpty()
}
extern "C"
JNIEXPORT jdouble JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_getInputOutputSampleRatio(JNIEnv *env, jobject thiz,
                                                                   jlong handle) {
    // TODO: implement getInputOutputSampleRatio()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_putSamples(JNIEnv *env, jobject thiz, jlong handle,
                                                    jshortArray samples, jint amount) {
    // TODO: implement putSamples()
}
extern "C"
JNIEXPORT jint JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_receiveSamples1(JNIEnv *env, jobject thiz, jlong handle,
                                                         jshortArray sample_buffer,
                                                         jint max_samples) {
    // TODO: implement receiveSamples1()
}
extern "C"
JNIEXPORT jint JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_receiveSamples2(JNIEnv *env, jobject thiz, jlong handle,
                                                         jint max_samples) {
    // TODO: implement receiveSamples2()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setRate(JNIEnv *env, jobject thiz, jlong handle,
                                                 jdouble rate) {
    // TODO: implement setRate()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setTempo(JNIEnv *env, jobject thiz, jlong handle,
                                                  jdouble tempo) {
    // TODO: implement setTempo()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setRateChange(JNIEnv *env, jobject thiz, jlong handle,
                                                       jdouble rate) {
    // TODO: implement setRateChange()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setTempoChange(JNIEnv *env, jobject thiz, jlong handle,
                                                        jdouble tempo) {
    // TODO: implement setTempoChange()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setPitch(JNIEnv *env, jobject thiz, jlong handle,
                                                  jdouble pitch) {
    // TODO: implement setPitch()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setPitchOctaves(JNIEnv *env, jobject thiz, jlong handle,
                                                         jdouble pitch) {
    // TODO: implement setPitchOctaves()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setPitchSemiTones1(JNIEnv *env, jobject thiz, jlong handle,
                                                            jint pitch) {
    // TODO: implement setPitchSemiTones1()
}
extern "C"
JNIEXPORT void JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setPitchSemiTones2(JNIEnv *env, jobject thiz, jlong handle,
                                                            jdouble pitch) {
    // TODO: implement setPitchSemiTones2()
}
extern "C"
JNIEXPORT jint JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_setSettingValue(JNIEnv *env, jobject thiz, jlong handle,
                                                         jint setting_id, jint value) {
    // TODO: implement setSettingValue()
}
extern "C"
JNIEXPORT jint JNICALL
Java_com_jay_audio_soundtouch_SoundTouch_getSettingValue(JNIEnv *env, jobject thiz, jlong handle,
                                                         jint setting_id) {
    // TODO: implement getSettingValue()
}